# M.2 SSD硬盘 ***Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.*** --- 本文介绍在Linux系统中对NVMe固态硬盘(以 */dev/nvme0n1* 为例)进行分区、格式化、挂载及性能测试的完整流程,适用于Quectel Pi H1。 # 硬件接口 ```{image} images/image_RdR4bNdI6oo1jMxgxwFcR7SvnXK.webp :width: 836px :height: 491px ``` # 快速安装指南 按照以下步骤完成M.2 NVMe固态硬盘的硬件安装: 1. 安装3个尼龙柱,使用3颗短螺钉将其固定到底板。 2. 安装GPIO转接头,用力按压,确保所有引脚都安装到位。 3. 将PCIe转接线均匀插入单板电脑的PCIe接口后,再从两侧向下按压固定支架,使其牢牢固定到位。 安装完成示意图如下: - 正视图: ```{image} images/image_I6lrbQoAJonhoRxJMBycyZXqnZd.webp :width: 1140px :height: 473px ``` - 背面图: ```{image} images/image_FBFmbwfAEoxXMoxdmdUcu2cynjd.webp :width: 1153px :height: 486px ``` - 侧视图: ```{image} images/image_WP9tbJZXPoN9oWxovpAcY1kwnBf.webp :width: 1171px :height: 366px ``` 4. 最后将M.2 HAT+置于尼龙柱顶部,使用3颗长螺钉将其固定到位。 ```{image} images/image_VIt3bDVQao2FH7xVhIrcWhK3n6b.webp :width: 796px :height: 442px ``` # 软件功能使用 ## 分区操作(*fdisk*) 通过 *fdisk* 工具对NVMe设备进行分区操作,步骤如下: ### 启动 *fdisk* 执行以下命令,启动 *fdisk* 并指定目标NVMe设备: ```shell fdisk /dev/nvme0n1 ``` ### 交互界面操作步骤 进入 *fdisk* 交互界面后,按以下顺序执行命令: #### 创建GUID分区表(GUID Partition Table, GPT) 输入g并回车,创建GPT GUID分区表(推荐用于大容量设备): ```plaintext Command (m for help): g Created a new GPT disklabel (GUID: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX) ``` #### 新建分区 输入n并回车,创建一个新分区。分区号、起始扇区、结束扇区均可保持默认(使用全部可用空间): ```plaintext Command (m for help): n Partition number (1-128, default 1): First sector (2048-xxxxxxxxx, default 2048): Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-xxxxxxxxx, default xxxxxx): Created a new partition 1 of type 'Linux filesystem' and of size XX GiB. ``` #### 写入分区表 输入w并回车,将分区配置写入设备并退出 *fdisk*: ```plaintext Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks. ``` 操作完成后,系统会生成新分区/dev/nvme0n1p1(p1表示第一个分区)。 ## 格式化分区(EXT4格式) 使用 *mkfs.ext4* 工具,将新分区格式化为EXT4文件系统(适用于大多数Linux环境): ```shell mkfs.ext4 /dev/nvme0n1p1 ``` 执行后会显示格式化进度,输出示例如下: ```plaintext mke2fs 1.46.5 (30-Dec-2021) Creating filesystem with 12345678 4k blocks and 3456789 inodes Filesystem UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Superblock backups stored on blocks: 32768, 98304, 163840, ... Allocating group tables: done Writing inode tables: done Creating journal (65536 blocks): done Writing superblocks and filesystem accounting information: done ``` ## 手动挂载分区 ### 创建挂载目录 使用 *mkdir* 命令,创建用于挂载SSD的目录(示例路径为/mnt/myssd): ```shell mkdir -p /mnt/myssd ``` ### 挂载分区 将/dev/nvme0n1p1分区挂载到/mnt/myssd目录: ```shell mount /dev/nvme0n1p1 /mnt/myssd ``` 可通过 *df -h* 命令验证挂载是否成功,若输出中包含/dev/nvme0n1p1和/mnt/myssd,则表示挂载正常,示例如下: ```shell df -h Filesystem Size Used Avail Use% Mounted on /dev/nvme0n1p1 100G 5G 95G 5% /mnt/myssd ``` ## 配置自动挂载(重启后生效) 通过修改/etc/fstab文件实现系统启动时自动挂载分区: ### 编辑fstab文件 使用nano编辑器打开/etc/fstab(也可使用vim等其他编辑器)。 ### 添加挂载配置 在文件末尾添加以下行,指定分区、挂载点、文件系统类型及挂载参数: ```plaintext /dev/nvme0n1p1 /mnt/myssd ext4 defaults 0 2 ``` 保存并退出后,下次系统启动时会自动挂载。 ## 性能测试(读写速度验证) 使用dd命令测试SSD的读写性能(测试时确保分区已挂载): ### 读取速度测试 创建一个临时测试文件,并通过读取该文件到空设备(/dev/null)测试读取速度: ```shell dd if=/mnt/myssd/testfile of=/dev/null bs=1G iflag=direct # iflag=direct:绕过系统缓存,测试真实读取速度1+0 records in1+0 records out 1073741824 bytes (1.1 GB, 1.0 GiB) copied, 0.852345 s, 1.3 GB/s ``` ### 写入速度测试 生成一个1GB的空文件(/dev/zero为零数据来源),测试写入速度: ```shell dd if=/dev/zero of=/mnt/myssd/testfile bs=1G count=1 oflag=direct 1+0 records in1+0 records out 1073741824 bytes (1.1 GB, 1.0 GiB) copied, 1.245678 s, 862 MB/s ``` ### 清理测试文件 测试完成后可通过如下命令删除测试临时文件: ```shell rm /mnt/myssd/testfile ```